package com.lagou.sqlSession;

import com.lagou.config.XMLConfigBuilder;
import com.lagou.pojo.Configuration;

import java.io.InputStream;

/**
 * @author Fxz
 * @version 1.0
 * @date 2021-07-27 9:37
 */
public class SqlSessionFactoryBuilder {
    /**
     * 解析配置文件 将配置文件的内容解析到Configuration Configuration含有数据源信息和sql信息
     * 传入Configuration 创建sqlSessionFactory 用于生产sqlSession
     */
    public SqlSessionFactory build(InputStream in) throws Exception {
        //第一步 使用dom4j解析配置文件 将解析出来的内容封装到Configuration中 Configuration含有数据源信息和sql信息
        XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder();
        Configuration configuration = xmlConfigBuilder.parseConfig(in);

        //第二步 创建sqlSessionFactory对象:工厂类 生产sqlSession会话对象
        DefaultSqlSessionFactory defaultSqlSessionFactory = new DefaultSqlSessionFactory(configuration);

        return defaultSqlSessionFactory;
    }
}
